/**
 * Created by zzy on 2018/1/24.
 */
import React,{Component} from 'react'
import {
    StyleSheet,
    View,
    Text,
    TouchableOpacity,
    ToastAndroid,
    PermissionsAndroid,
} from 'react-native'

export default class PermissionAndroidUtil{
    /*
     * 弹出提示框向用户请求某项权限。返回一个promise，最终值为用户是否同意了权限申请的布尔值。
     * 其中rationale参数是可选的，其结构为包含title和message)的对象。
     * 此方法会和系统协商，是弹出系统内置的权限申请对话框，
     * 还是显示rationale中的信息以向用户进行解释。
     * */
    static async requestReadPermission() {
        try {
            //返回string类型
            const granted = await PermissionsAndroid.request(
                PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
                {
                    //第一次请求拒绝后提示用户你为什么要这个权限
                    'title': '我要读写权限',
                    'message': '没权限我不能工作，同意就好了'
                }
            )
            if (granted === PermissionsAndroid.RESULTS.GRANTED) {
            } else {
            }
        } catch (err) {
        }
    }

    static async requestCarmeraPermission() {
        try {
            const granted = await PermissionsAndroid.request(
                PermissionsAndroid.PERMISSIONS.CAMERA,
                {
                    //第一次请求拒绝后提示用户你为什么要这个权限
                    'title': '我要相机权限',
                    'message': '没权限我不能工作，同意就好了'
                }
            )
            if (granted === PermissionsAndroid.RESULTS.GRANTED) {
            } else {
            }
        } catch (err) {
        }
    }

    static checkPermission() {
        try {
            //返回Promise类型
            const granted = PermissionsAndroid.check(
                PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE
            )
            granted.then((data)=>{
            }).catch((err)=>{
            })
        } catch (err) {
        }
    }

    static async requestLocationPermission() {
        try {
            const granted = await PermissionsAndroid.request(
                PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
                // {
                //     //第一次请求拒绝后提示用户你为什么要这个权限
                //     'title': '我要地址查询权限',
                //     'message': '没权限我不能工作，同意就好了'
                // }
            )

            if (granted === PermissionsAndroid.RESULTS.GRANTED) {
            } else {
            }
        } catch (err) {
        }
    }

    static async requestMultiplePermission(callBack) {
        try {
            const permissions = [
                PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
                PermissionsAndroid.PERMISSIONS.CAMERA,
                PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
            ]
            //返回得是对象类型
            const granteds = await PermissionsAndroid.requestMultiple(permissions)
            if (granteds["android.permission.ACCESS_FINE_LOCATION"] === "granted") {
            } else {
            }
            if (granteds["android.permission.CAMERA"] === "granted") {
            } else {
            }
            if (granteds["android.permission.READ_CONTACTS"] === "granted") {

            } else {
            }
        } catch (err) {
        }
    }

}